require 'rubygems'
require 'bcrypt'
require '../enums.rb'

class AdministradoresConferencia < ActiveRecord::Base
  self.table_name = "administradores"
  
  belongs_to :conferencia
  belongs_to :usuario 
  
  def self.usuarioPerteneceAAdministradores(idConferencia, idUsuario)
    administradores = AdministradoresConferencia.where("conferencia_id = ? and usuario_id = ?", idConferencia, idUsuario)
    
    return ! administradores.first.nil?
  end
end

class Asignacion < ActiveRecord::Base
  self.table_name = "asignaciones"
  
  belongs_to :charla
  belongs_to :usuario
  
  def self.usuarioPuedeEvaluarCharla?(idCharla, idUsuario)
    asignacion = Asignacion.where("charla_id = ? and usuario_id = ?", idCharla, idUsuario) 
    
    return ! asignacion.first.nil?
  end
  
  def self.cantidadEvaluadores(idCharla)
    asignacion = Asignacion.where("charla_id = ?", idCharla) 
    
    return asignacion.count
  end
end

class Evaluacion < ActiveRecord::Base
  self.table_name = "evaluaciones"
    
  validates :resumen, 
            :presence => {:message => '* Por favor ingrese un resumen para evaluar la charla'},
            :length => { :maximum => 500, :message=>'* Por favor verifique que el campo resumen no supere el limite establecido'}
  validates :comentario, 
            :presence => {:message => '* Por favor ingrese un comentario para evaluar la charla'},
            :length => { :maximum => 500, :message=>'* Por favor verifique que el campo comentario no supere el limite establecido'}
  
  belongs_to :charla
  belongs_to :usuario
  
  def aprobada?
    return self.estado == EstadoEvaluacion::APROBADA
  end
  
  def self.evaluacionYaRealizada?(idCharla,idUsuario)
    evaluacion = Evaluacion.where("charla_id = ? and usuario_id = ?", idCharla, idUsuario)
    
    return ! evaluacion.first.nil?
  end
  
  def self.charlaTieneEvaluaciones?(idCharla)
    evaluacion = Evaluacion.where("charla_id = ?", idCharla)
    
    return ! evaluacion.first.nil?
  end
  
end